package com.smartcruise.base;

import android.widget.BaseAdapter;

/**
 * Created by FengChaoQun
 * on 2018/3/18 0018
 */

public interface RefreshContract {

    /**
     * description:下拉刷新组件接口
     */

    interface RefreshInterface {

        /**
         * description:自动刷新
         */

        void autoRefresh();

        /**
         * description:自动加载更多
         */

        void autoLoadMore();

        /**
         * description:结束刷新
         */

        void finishRefresh(boolean success);

        /**
         * description:结束加载
         */

        void finishLoadMore(boolean success);

        /**
         * description:设置是否可以下拉刷新
         */

        void setEnableRefresh(boolean enable);

        /**
         * description:设置是否可以加载更多
         */

        void setEnableLoadMore(boolean enable);

        /**
         * description:设置数据全部加载完成，将不能再次触发加载功能
         */

        void setNoMoreData(boolean noMoreData);

        /**
         * description:设置刷新回调
         */

        void setOnRefreshListener(OnRefreshListener onRefreshListener);

        /**
         * description:设置加载更多回调
         */

        void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener);

    }

    /**
     * description:下拉刷新view
     */

    interface View extends BaseNormalView {

        /**
         * description:获取刷新组件
         */

        RefreshInterface getRefresh();

        /**
         * description:设置数据
         */

        void setData(BaseAdapter baseAdapter);

    }

    /**
     * description:下拉刷新presenter
     */

    interface Presenter extends BasePresenter {

        /**
         * description:下拉刷新
         */

        void refresh();

        /**
         * description:上拉加载
         */

        void loadMore();

        /**
         * description:界面销毁的时候调用
         */

        void destroy();

    }

    /**
     * description:下拉刷新回调
     */

    interface OnRefreshListener {

        void onRefresh(RefreshInterface refreshInterface);

    }

    /**
     * description:上拉加载回调
     */

    interface OnLoadMoreListener {

        void onLoadMore(RefreshInterface refreshInterface);

    }

}
